Los detalles sobre este paquete se encuentran en la Sección 6.13.2 , "Contenido de Binutils ".
El paquete Binutils contiene un enlazador, un ensamblador y otras utilidades para trabajar objetos del sistema.
Vuelva atrás y lea las notas en la sección anterior. La comprensión de las notas resaltadas como importante le ahorrará un montón de problemas más adelante.
Es importante que Binutils sea el primer paquete que compiles, pues tanto Glibc como GCC llevan a cabo varias comprobaciones sobre el enlazador y ensamblador para determinar cuáles de sus características hay que activar.
La documentación de Binutils recomienda construirlo fuera del directorio de las fuentes (sources), en un directorio de construcción dedicado :
mkdir -v ../binutils-build cd ../binutils-build
Para que los valores de los SBUs mostrados en el resto del libro puedan ser de alguna utilidad , mide el Espacio requerido en disco que tarda en construirse este paquete desde la compilación hasta la primera instalación . Para ello , envuelve los comandos dentro de un comando time de esta manera:
time { ./configure ... &&
... && make install; }
.
Los valores aproximados de SBU durante la construcción y el espacio requerido en disco del Capítulo 5 no incluyen datos del banco de pruebas.
Ahora prepara Binutils para la compilación:
../binutils-2.24/configure \ --prefix=/tools \ --with-sysroot=$LFS \ --with-lib-path=/tools/lib \ --target=$LFS_TGT \ --disable-nls \ --disable-werror
El significado de las opciones de configure:
--prefix=/tools
Esto le indica al script configure que prepare la instalación de los programas de Binutils en el directorio /tools.
--with-sysroot=$LFS
Para la compilación cruzada , esto le indica al sistema de construcción que mire en $LFS para encontrar las bibliotecas del sistema de destino , según sea necesario .
--with-lib-path=/tools/lib
Especifica que ruta de librería el enlazador debería estar configurado para usar.
--target=$LFS_TGT
Debido a que la descripción de la máquina en la variable LFS_TGT es ligeramente diferente que el valor devuelto por el script config.guess , este parámetro le dirá al script de configuración que ajuste el sistema de construcción de Binutil para la construcción de un enlazador cruzado.
--disable-nls
Esta opción desactiva la internacionalización como i18n ya que no es necesario en las herramientas temporales .
--disable-werror
Esto evita que la construcción se pare en el caso de que surjan advertencias del compilador del anfitrión.
Continúa con la compilación del paquete:
make
La compilación está completa . Normalmente deberíamos ejecutar ahora el banco de pruebas , pero en esta primera etapa el framework del conjunto de pruebas ( Tcl, Expect y DejaGNU ) aún no está en su lugar . Los beneficios de ejecutar las pruebas en este momento son mínimos, pues los programas de esta primera fase pronto serán sustituidos por los de la segunda .
Si la construcción tiene lugar en sistemas x86_64 , crea un enlace simbólico para garantizar la sanidad de la cadena de herramientas :
case $(uname -m) in x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac
Instala el paquete:
make install
Los detalles sobre este paquete se encuentran en la Sección 6.13.2 , "Contenido de Binutils ".